According to Iwanami's Dictionary of Mathematics (third edition), discovery of the finite element method is accredited to either the article of Courant (Bull. Amer. Math. Soc., 49 (1943)) or the article of M. J. Turner et al., (J. Aero. Sci. 23 (1956) 805–823). In either case, the contribution of that method to the engineering field is still enormous almost half a century after its discovery; many articles are published every year and many textbooks are written. For example, O. C. Zienkiewicz, Masao Yoshiki & Yoshiaki Yamada (TR), “Matrix Finite Element Method”, third revised edition, (Baifukan, 1984), and Motoki Yagawa & Shinobu Yoshimura, “Finite Element Method” (Baifukan, 1991) are known.
Furthermore, inventions that pertain to the finite element methods have been made, and Japanese Patent Publication No. 61-10771 is known as an early one. Especially, various proposals have been made in association with a mesh generation method. For example, Japanese Patent Laid-Open No. 6-231216, 6-231217, 9-185729, 9-259300, and the like are known.
The basic concept of the finite element method grounds on the Ritz's method that obtains the solution of a partial differential equation defined as a boundary-value problem by approximating a function space F as a domain of definition of differential operators by a real finite dimensional Hilbert space H (since a real matrix expression is available even when the function space F assumes complex number values, only a case of a real number is explained without losing generality). As the inner product of the Hilbert space H, a natural inner product derived from the square integral (L2) norm (Iwanami's Dictionary of Mathematics, third edition, Iwanami, p. 61, 1994) is used. Also, as in the Ritz's method, approximation is evaluated in a weak topology. The finite dimensional Hilbert space H is defined by a set (V, <,>) of a finite dimensional vector space V and inner products <,>. In this case, linear mapping from V to F is designed to be injection, and various operations (e.g., differential operations) to F can be naturally limited to V as those operations to V.
Many finite element methods are characterized by using a function which has a very narrow support (closure of a nonzero set) as a basis function of the finite dimensional Hilbert space. For this purpose, a metric M determined by natural inner products <,>; in the Hilbert space (V, <,>) with respect to the finite dimensional vector space V, i.e., linear mapping from V to its dual space V*M:V→V*  (1)is generally obtained as a sparse matrix. Note that M is determined so that an inner product<,>:V×V→R  (2)as bi-linear mapping to real number R matches(,M):V×V→R, ((u,Mv)ε R),  (3)using natural pairing (,):V×V*→R. Also, differential operators to the function space F can be considered as bounded operators (i.e., having real number coefficient finite dimensional matrix listing) on the finite dimensional Hilbert space H by the aforementioned natural limitations. Since the above limitations are not always homomorphic as an operator ring, they are not a natural inclusion as an operator ring. However, it is important to consider the vector space V as a natural inclusion of the function space F as a real number value vector space, and it is also important to consider that the finite element method is a numerical calculus technique defined on a finite dimensional operator ring.
Since a function having a very narrow support is used as a basis function of V, as described above, a matrix expression of metric M and many physical differential operators in H normally becomes a very sparse matrix (a matrix which has a very small ratio of the number of nonzero elements to the total degree of freedom). For this reason, numerical calculations can be very easily made.
In this manner, the mechanism itself of the finite element method has universality and versatility. An automatic generation program for automatically generating a program of the finite element method, and a finite element method library that provides a basic part of the finite element method as a library have been developed using such universality and versatility.
As examples of the automatic generation program, Japanese Patent Publication Nos. 7-120275 and 7-120276, and U.S. Pat. No. 2,765,888 are known. However, the automatic generation program has little flexibility since it is not easy to change inputs/outputs in correspondence with subjects.
On the other hand, as an example of the finite element method library, a library named Diffpack is introduced in Hans Petter Langtangen, “Computational Partial Differential Equations: Numerical Methods and Diffpack Programming, (Lecture Notes in Computational Science and Engineering, 2, Springer, 1999. Furthermore, formulation of the finite element method on the hierarchical structure lattices shown in FIG. 3 as a base for a substantial finite element method library has been proposed. For example, such proposal has been described in detail in Michael Griebel & Gerhard Zumbusch, “Parallel adaptive subspace correction schemes with applications to elasticity”, Computer Methods in applied mechanics and engineering 184, p. 303–332 (2000) and its references.
Note that the finite element method library includes fundamental variable declarations, and subroutine and function sets, which are used to complete a self-produced finite element method program corresponding to each individual problem by defining variables in accordance with each individual problem and combining functions and the like provided by the library by the programmer as the user. Since processes by the finite element methods are mathematically formulated in the library, the method using the library can easily generate a finite element method program according to each individual problem (e.g., the strength of materials, mechanics of continua, electromagnetics, and the like) compared to generation of a finite element method program using the aforementioned automatic generation program.
However, the user often uses the finite element method as a library without recognizing the metric given by formula (1). Many textbooks of linear algebra normally are based on an orthogonal normal basis as a base of a vector space, and do not consider a dual space and metric. As a result, the user introduces an inner product which is different from a natural inner product of the finite element method in the vector space, and such use distorts the original Hilbert space H of the finite element method, resulting in a quite different Hilbert space. The inner product of the Hilbert space is (bi-linear) mapping from a vector space to real numbers as quantities (ordered set), the magnitudes of which are to be compared, and the change of this inner product means definition of a quite different magnitude relation. In practice, since it is natural to make error evaluation or the like using this mapping to real numbers, the change in inner product often results in serious errors.
In general, an operator ring is defined as a ring of operators on the Hilbert space, and the inner product of the Hilbert space plays a very important role in the operator ring. In case of a function space as an infinite dimensional vector space, a target phenomenon is often largely converted depending on the inner product. As described above, it is natural to consider the finite element method as the finite dimensional operator ring. However, since the finite element method simulates a physical space as an infinite dimensional vector space, the inner product must be carefully taken account. Hence, from such point of view, careless use of the inner product results in loss of mathematical rationality.
In fact, it is a common practice in the finite element method to define, as the basis function, a connected support (closure of a domain of definition having nonzero values) on a cell or on the vicinity of that cell of non-structured lattices shown in FIG. 4. Individual cells have different volumes. On the other hand, nonzero matrix elements of a metric matrix have strong correlation to the volumes of individual cells in the finite element method, and a large volume ratio of elements means a large difference among the matrix elements. Hence, definition of another inner product without respect to the metric M results in delay of convergence and deterioration of precision. This poses problems of precision and reliability of the finite element method library itself, and is an important subject upon generating a library.
In this manner, it is important to generate a program that can correctly calculate the inner product in the Hilbert space upon using the finite element method as a library in terms of the reliability of a program such as a reduction of calculation errors, an improvement in convergence time, and the like.